﻿using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;

namespace BEGDC.Utility.Security
{
	/// <summary>
	/// Summary description for EncryptTool.
	/// </summary>
	public class EncryptTool
	{
		public static string Encrypt(string text, string key)
		{
			DESCryptoServiceProvider  des  =  new  DESCryptoServiceProvider();  			
			byte[]  inputByteArray  =  Encoding.UTF8.GetBytes(text);  			
			des.Key  =  ASCIIEncoding.ASCII.GetBytes(key);  
			des.IV  =  ASCIIEncoding.ASCII.GetBytes(key);  
			MemoryStream  ms  =  new  MemoryStream();  
			CryptoStream  cs  =  new  CryptoStream(ms,  des.CreateEncryptor(),CryptoStreamMode.Write);  
			cs.Write(inputByteArray,  0,  inputByteArray.Length);  
			cs.FlushFinalBlock(); 
			byte[] en_bytes = ms.ToArray();			
			return Convert.ToBase64String(en_bytes);
		}

		public static string Decrypt(string text, string key)
		{
			DESCryptoServiceProvider  des  =  new  DESCryptoServiceProvider();  
			byte[]  inputByteArray  =  Convert.FromBase64String(text);
			des.Key  =  ASCIIEncoding.ASCII.GetBytes(key);  
			des.IV  =  ASCIIEncoding.ASCII.GetBytes(key);  
			MemoryStream  ms  =  new  MemoryStream();  
			CryptoStream  cs  =  new  CryptoStream(ms,  des.CreateDecryptor(),CryptoStreamMode.Write);  
			cs.Write(inputByteArray,  0,  inputByteArray.Length);  
			cs.FlushFinalBlock();  
			StringBuilder  ret  =  new  StringBuilder();  
			return  System.Text.Encoding.UTF8.GetString(ms.ToArray());  

		}
	}
}
